<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>localStorage</title>
</head>
<body>

    <!-- 
        webStorage
            1.存储内容大小一般只吃5mb左右(不同浏览器可能不一样)
            2.浏览器端通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制
            3.相关api:
                1. xxxStorage.setItem('key', value)
                    该方法接受一个键和值作为参数,会把键值添加到存储中,如果键名存在,则更新对应的值
                
                2. xxxStorage.getItem('person')
                    该方法接收一个键名作为参数, 返回键名对应的值
                
                3. xxxStorage.removeItem('key')
                    该方法接收一个键名作为参数, 并把该键名从存储中删除
                
                4. xxxStorage.clear()
                    该方法会清空存储中的所有数据

            备注:
                1.SessionStorage存储的内容会随着浏览器窗口关闭而消失
                2.LocalStorage存储的内容, 需要手动清除才会消失
                3.xxxStorage.getItem(xxx) 如果xxx对应的value获取不到, 那么getItem的返回值是null
                4.JSON.parse(null)的结果依然是null
                    
     -->



    <h2>localStorage</h2>
    <button onclick="saveData()">点我保存一个数据</button>
    <button onclick="readData()">点我读取一个数据</button>
    <button onclick="deleteData()">点我删除一个数据</button>
    <button onclick="deleteAllData()">点我清空数据</button>


    <script>
        let p = {
            name: '张三',
            age: 18
        }
        function saveData () {
           localStorage.setItem('msg', 'hello!')
           localStorage.setItem('msg2', 666)
           localStorage.setItem('person', JSON.stringify(p))
        }
        function readData () {
            console.log(localStorage.getItem('msg'))
            console.log(localStorage.getItem('msg2'))
            console.log(JSON.parse(localStorage.getItem('msg2')))

            console.log(localStorage.getItem('msg3'))
        }
        function deleteData () {
           localStorage.removeItem('msg')
        }
        function deleteAllData () {
           localStorage.clear()
        }
    </script>
</body>
</html>